// 用户登录的token持久化处理

// 导入 操作token的文件
import { getToken, setToken } from '@/utils/auth'
// 导入 用户登录接口 获取用户信息接口 获取用户头像接口
import { sysLogin, sysProfile, sysUser } from '@/api/user.js'

// 数据状态
const state = {
  token: getToken() || '', // 登录token
  userInfo: '' // 用户信息
}

// 数据修改
const mutations = {
  // 修改token
  setToken(state, value) {
    state.token = value // 修改state中的token
    setToken(value) // 将token保存到本地cookies中
  },
  // 修该用户信息
  setUserInfo(state, value) {
    state.userInfo = value
  }
}

// 异步操作
const actions = {
  // 设置方法-----获取并保存用户token
  async userLogin(store, form) {
    // 调用用户登录接口
    const res = await sysLogin(form)
    store.commit('setToken', res.data)
  },
  // 设置方法-----获取用户信息及头像
  async getUserInfo({ commit }) {
    const res1 = await sysProfile()
    const res2 = await sysUser(res1.data.userId)
    const res3 = Object.assign({}, res1, res2)
    console.log(res3)
    commit('setUserInfo', res3.data)
  }
}
const getters = {}

export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters
}
